﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;

namespace ADB_QuanLyThuVien
{


    public class Book : IComparable<Book>
    {
        string _maSach;
        [DisplayName("Mã Sách")]
        public string MaSach
        {
            get { return _maSach; }
            set { _maSach = value; }
        }

        string _tenSach;
        [DisplayName("Tên sách")]
        public string TenSach
        {
            get { return _tenSach; }
            set
            {
                _tenSach = value;
            }
        }

        Author _tacgia;
        [DisplayName("Tác giả")]
        public Author Tacgia
        {
            get { return _tacgia; }
            set
            {
                _tacgia = value;
            }
        }
        long _giaTien;
        [DisplayName("Giá tiền")]
        public long GiaTien
        {
            get { return _giaTien; }
            set
            {
                _giaTien = value;
            }
        }

        DTO_NhaXuatBan _nhaXB;
        [DisplayName("Nhà xuất bản")]
        public DTO_NhaXuatBan NhaXB
        {
            get { return _nhaXB; }
            set
            {
                _nhaXB = value;
            }
        }

        int _namxb;
        [DisplayName("Năm xuất bản")]
        public int Namxb
        {
            get { return _namxb; }
            set
            {
                _namxb = value;
            }
        }

        Member _nhanVien;
        [DisplayName("Nhân viên nhập sách")]
        public Member NhanVien
        {
            get { return _nhanVien; }
            set
            {
                _nhanVien = value;
            }
        }

        DateTime _ngaynhap;
        [DisplayName("Ngày nhập")]
        public DateTime Ngaynhap
        {
            get { return _ngaynhap; }
            set
            {
                _ngaynhap = value;
            }
        }

        long _luotMuon;
        [DisplayName("Lượt mượn sách")]
        public long LuotMuon
        {
            get { return _luotMuon; }
            set
            {
                _luotMuon = value;
            }
        }

        int _soluong;
        [DisplayName("Số lượng trong kho")]
        public int Soluong
        {
            get { return _soluong; }
            set { _soluong = value; }
        }
        Category _theLoai;

        public Category TheLoai
        {
            get { return _theLoai; }
            set { _theLoai = value; }
        }

        public int CompareTo(Book b)
        {
            // Alphabetic sort name[A to Z]
            return b.LuotMuon.CompareTo(this.LuotMuon);
        }
        public Book()
        {
            _maSach = null;
            _tenSach = null;
            _nhanVien = null;
            _luotMuon = 0;
            _giaTien = 0;
            _namxb = 0;
            _ngaynhap = new DateTime();
            _theLoai = null;
            _tacgia = null;
            _nhaXB = null;
            _soluong = 0;
        }
        public override string ToString()
        {
            return TenSach;
        }
    }
  
    public class sortOnNamXB : IComparer<Book>
    {
        public int Compare(Book a, Book b)
        {
            return b.Namxb.CompareTo(a.Namxb);
        }
    }
    
}
    

